package com.itheima.d4_hashcode;

import java.util.HashSet;
import java.util.Set;

/**
 * HashSet存储自定义对象 实现去重操作
 *  去重的规则：
 *       HashCode值：
 *           不同：认为不是同一个对象 可以进行存储
 *           相同：有可能是相同的对象
 *               equals():
 *                   true: 相同的对象，不存储
 *                   false: 不同对象，可以进行存储
 */
public class SetDemo2 {
    public static void main(String[] args) {

        Student s1 = new Student("小王", 18, "西安", "123456");
        Student s3 = new Student("张三", 20, "杭州", "123456111");
        Student s2 = new Student("小王", 18, "西安", "123456");
        Student s4 = new Student("李四", 23, "北京", "123456");
        Student s5 = new Student("赵六", 15, "上海", "1234323456");
        //没有进行去重 所以需要重写hashcode方法
        //但是有可能会出现哈希碰撞 所以需要继续重写equals方法
        Set<Student> set = new HashSet<>();
        set.add(s1);
        set.add(s2);
        set.add(s3);
        set.add(s4);
        set.add(s5);
        System.out.println(set);
    }
}
